The present invention relates to a method and apparatus for controlling the buffer scan in a laser printer and placing the origin of the buffer.
Current development of page description languages (PDL) such as PostScript from Adobe, Interpress from Xerox, Standard Page Description Language (SPDL) made a bit map memory a necessary means to buffer a page image which is sent to a laser printer. The reason for the bit map memory is that a user can create an arbitrarily complex page. Moreover, a laser printer cannot stop until it prints an entire page, which causes a band buffer to fail if the page is too complex.
The coordinate systems commonly used by languages such as PDL are user coordinate and device coordinate. Users of PDL can set the mapping between these two coordinates. The most natural origin of these coordinate systems is the bottom left corner. Users of PDL can work with this origin quite naturally. However, the top left corner of the paper is the natural origin for a laser printer. This is due to the paper movement and laser scanning.
Firmware engineers of PDL had to take care of this mismatch between two origins in the past. When the CPU of PDL was a general purpose CPU, addressing each pixel was difficult, but adjustment of two origins was not a significant problem. However, the recent advance of graphic processors allows firmware engineers to use natural X-Y coordinate systems to develop software. Therefore, having two different origins is not a suitable environment.
In many cases, X-Y coordinate systems work faster when the X dimension is a power of 2. Therefore, even when 2400 dots are needed to handle 8 inches for a 300 dots per inch (DPI) laser printer, 4096 dots must be specified to take advantage of a special graphics chip. During the debug stage, however, 1024 dots may be sufficient for x dimension. FIGS. 1 and 2 show these two cases. In general, firmware engineers want to have flexibility to change the dimension of the bit map.
Additional flexibility required is the ability to place the page image data anywhere in the physical paper. This flexibility may be needed if additional space on the left edge is required for three-hole punch after the page image data are generated.
In one approach described in the above cross-referenced application, there is provided therein a flexible buffer where a user controlled the register for the X and Y dimensions of the buffer. The problems of that approach are: 1) cannot decrement Y values to adjust to the different origin; 2) cannot handle the case where the bit map and actual data dimensions are different.